Generally, a storage apparatus includes a randomly accessible non-volatile storage medium and a storage controller which controls data transfer between a host computer coupled to the storage apparatus and the non-volatile storage medium inside the storage apparatus.
Examples of a non-volatile storage medium included in a storage apparatus include a hard disk drive (HDD), a magnetic disk drive, an optical disk drive, and a flash drive (a non-volatile semiconductor memory). Performances of these non-volatile storage media are improving year after year. In particular, a storage apparatus including a flash drive is superior to a storage apparatus only including a hard disk drive in terms of lifetime, power saving, access time, and the like. Performances of flash drives are improving dramatically with advances in semiconductor technology.
However, on the other hand, performances of storage controllers are lagging behind and may problematically constitute a bottleneck. Even when mounting, for example, only about a dozen of flash drives, the performance of a storage controller may constitute a bottleneck and prevent the performances of the flash drives from being fully exploited.
PTL 1 discloses a method of realizing, with dedicated hardware, a high-performance storage controller for controlling a storage apparatus.